package cn.iocoder.yudao.module.project.service.dispatchlist;

import java.io.InputStream;
import java.util.*;
import javax.validation.*;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.project.controller.admin.dispatchlist.vo.*;
import cn.iocoder.yudao.module.project.dal.dataobject.dispatchlist.DispatchListDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 派工单 Service 接口
 *
 * @author 管理员
 */
public interface DispatchListService {

    /**
     * 创建派工单
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createDispatchList(@Valid DispatchListSaveReqVO createReqVO);

    /**
     * 更新派工单
     *
     * @param updateReqVO 更新信息
     */
    void updateDispatchList(@Valid DispatchListSaveReqVO updateReqVO);

    /**
     * 删除派工单
     *
     * @param id 编号
     */
    void deleteDispatchList(Integer id);

    /**
     * 获得派工单
     *
     * @param id 编号
     * @return 派工单
     */
    DispatchListDO getDispatchList(Integer id);

    /**
     * 获得派工单分页
     *
     * @param pageReqVO 分页查询
     * @return 派工单分页
     */
    PageResult<DispatchListDO> getDispatchListPage(DispatchListPageReqVO pageReqVO);

    /**
     * 导入派工单
     *
     * @param inputStream 文件输入流
     * @return 导入结果
     */
    CommonResult<String> importExcel(InputStream inputStream);
}
